package com.clstu.set;

import java.util.HashSet;
import java.util.Objects;
import java.util.Set;

public class HashSet_ {
    public static void main(String[] args) {
        Set set = new HashSet();
        set.add("java");
        set.add("php");
        set.add("java");//相同的时候不加入，size也不++
        set.add("java");
        set.add("java");//临界值是当前set的大小*0.75，如果到达，一定会触发扩容机制，扩容为原来的2倍
        for (int i = 0; i < 20; i++) {
            set.add(new A(i));
            //全部都会挂在同一条链表上，如果长度到了8，就会检查是否有树化条件（table长度64）
            //如果table表长度达到64，则树化
            //如果没有达到64，触发扩容机制（不管长度是否到达临界值），再挂，再触发，直到可以树化，
        }
        for (int i = 0; i < 100; i++) {
            set.add(i);
        }
    }
}
class A{
    private int n;

    public A(int n) {
        this.n = n;
    }
    @Override
    public int hashCode() {
        return 100;//使它们挂到同一条链表上
    }
}